<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Data Structures for Sets and Graphs: Graph&lt; D &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Data Structures for Sets and Graphs
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pri-methods">Private Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">Graph&lt; D &gt; Class Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="Graph_8h_source.html">Graph.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Graph&lt; D &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classGraph__inherit__graph.png" border="0" usemap="#Graph_3_01D_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="Graph_3_01D_01_4_inherit__map" id="Graph_3_01D_01_4_inherit__map">
<area shape="rect" id="node5" href="classBitMapGraph.html" title="BitMapGraph\&lt; T \&gt;" alt="" coords="5,160,136,189"/><area shape="rect" id="node2" href="classDiGraph.html" title="A directed graph with the vertices being natural numbers." alt="" coords="19,5,123,35"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for Graph&lt; D &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classGraph__coll__graph.png" border="0" usemap="#Graph_3_01D_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="Graph_3_01D_01_4_coll__map" id="Graph_3_01D_01_4_coll__map">
<area shape="rect" id="node2" href="classDiGraph.html" title="A directed graph with the vertices being natural numbers." alt="" coords="5,101,109,131"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classGraph-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a42783725efe6469a559aaf293927fd03"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraph.html#a42783725efe6469a559aaf293927fd03">Graph</a> (long <a class="el" href="classDiGraph.html#a96f68a636f97b7144bd329c76ee51122">n</a>)</td></tr>
<tr class="memitem:a40d32250cafa5d5e17b9fa6c8e802272"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraph.html#a40d32250cafa5d5e17b9fa6c8e802272">~Graph</a> ()</td></tr>
<tr class="memitem:a60727c0e122156a7f70019795a6aade3"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraph.html#a60727c0e122156a7f70019795a6aade3">addEdge</a> (long i, long j)</td></tr>
<tr class="memdesc:a60727c0e122156a7f70019795a6aade3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an edge between the two specified vertices (optional operation).  <a href="#a60727c0e122156a7f70019795a6aade3"></a><br/></td></tr>
<tr class="memitem:aec1d47825b39b88d7368330cd1e12497"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraph.html#aec1d47825b39b88d7368330cd1e12497">delEdge</a> (long i, long j)</td></tr>
<tr class="memdesc:aec1d47825b39b88d7368330cd1e12497"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes the edge defined by the two specified vertices (optional operation).  <a href="#aec1d47825b39b88d7368330cd1e12497"></a><br/></td></tr>
<tr class="memitem:a33bc7b325cc386e33577873f22cae843"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraph.html#a33bc7b325cc386e33577873f22cae843">flipEdge</a> (long i, long j)</td></tr>
<tr class="memdesc:a33bc7b325cc386e33577873f22cae843"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap the edge represented by the specified ordered pair (optional operation).  <a href="#a33bc7b325cc386e33577873f22cae843"></a><br/></td></tr>
<tr class="memitem:aa48d8578b691867f2f9ea9a06f0379d4"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraph.html#aa48d8578b691867f2f9ea9a06f0379d4">joinAdj</a> (long i, long j)</td></tr>
<tr class="memdesc:aa48d8578b691867f2f9ea9a06f0379d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Joins the neighborhood of two specified vertices (optional operation).  <a href="#aa48d8578b691867f2f9ea9a06f0379d4"></a><br/></td></tr>
<tr class="memitem:ad8f1be542121d900ce4a6714fc4790c7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraph.html#ad8f1be542121d900ce4a6714fc4790c7">commonAdj</a> (long i, long j)</td></tr>
<tr class="memdesc:ad8f1be542121d900ce4a6714fc4790c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the common neighborhood of specified vertices (optional operation)  <a href="#ad8f1be542121d900ce4a6714fc4790c7"></a><br/></td></tr>
<tr class="memitem:a44bb6e4984060e2ec712521973916bfa"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraph.html#a44bb6e4984060e2ec712521973916bfa">diffAdj</a> (long i, long j)</td></tr>
<tr class="memdesc:a44bb6e4984060e2ec712521973916bfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes from the neighborhood of one specified vertex the neighbors of a second specified vertex (optional operation)  <a href="#a44bb6e4984060e2ec712521973916bfa"></a><br/></td></tr>
<tr class="memitem:aa8af5d1b51a06458e6b369b2d017fb9a"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classDiGraph.html">DiGraph</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraph.html#aa8af5d1b51a06458e6b369b2d017fb9a">homomorphism</a> (long rsize, char *R)</td></tr>
<tr class="memdesc:aa8af5d1b51a06458e6b369b2d017fb9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a homomorphism of the current graph.  <a href="#aa8af5d1b51a06458e6b369b2d017fb9a"></a><br/></td></tr>
<tr class="memitem:a6e6876cdbda5025eb6e0ded963f4ab15"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classDiGraph.html">DiGraph</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGraph.html#a6e6876cdbda5025eb6e0ded963f4ab15">complement</a> ()</td></tr>
<tr class="memdesc:a6e6876cdbda5025eb6e0ded963f4ab15"><td class="mdescLeft">&#160;</td><td class="mdescRight">The complement of the current graph.  <a href="#a6e6876cdbda5025eb6e0ded963f4ab15"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_methods_classDiGraph"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classDiGraph')"><img src="closed.png" alt="-"/>&nbsp;Public Member Functions inherited from <a class="el" href="classDiGraph.html">DiGraph< D ></a></td></tr>
<tr class="memitem:a888342d25cf6d51149ad7bf267d1dcb2 inherit pub_methods_classDiGraph"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDiGraph.html#a888342d25cf6d51149ad7bf267d1dcb2">~DiGraph</a> ()</td></tr>
<tr class="memdesc:a888342d25cf6d51149ad7bf267d1dcb2 inherit pub_methods_classDiGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">The destructor.  <a href="#a888342d25cf6d51149ad7bf267d1dcb2"></a><br/></td></tr>
<tr class="memitem:aa7b94dd44ea199c74447ceeb2df08db7 inherit pub_methods_classDiGraph"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDiGraph.html#aa7b94dd44ea199c74447ceeb2df08db7">nverts</a> () const </td></tr>
<tr class="memdesc:aa7b94dd44ea199c74447ceeb2df08db7 inherit pub_methods_classDiGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of vertices.  <a href="#aa7b94dd44ea199c74447ceeb2df08db7"></a><br/></td></tr>
<tr class="memitem:a374ae8d5e5503c00279089718b500bf5 inherit pub_methods_classDiGraph"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDiGraph.html#a374ae8d5e5503c00279089718b500bf5">countnedges</a> ()</td></tr>
<tr class="memdesc:a374ae8d5e5503c00279089718b500bf5 inherit pub_methods_classDiGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the number of edges.  <a href="#a374ae8d5e5503c00279089718b500bf5"></a><br/></td></tr>
<tr class="memitem:a9ac2dec95165a6064d89c1356354ef26 inherit pub_methods_classDiGraph"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDiGraph.html#a9ac2dec95165a6064d89c1356354ef26">nedges</a> () const </td></tr>
<tr class="memdesc:a9ac2dec95165a6064d89c1356354ef26 inherit pub_methods_classDiGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of edges.  <a href="#a9ac2dec95165a6064d89c1356354ef26"></a><br/></td></tr>
<tr class="memitem:a1e321ab267657ef4222b7b2954492e63 inherit pub_methods_classDiGraph"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDiGraph.html#a1e321ab267657ef4222b7b2954492e63">addAllEdges</a> ()</td></tr>
<tr class="memdesc:a1e321ab267657ef4222b7b2954492e63 inherit pub_methods_classDiGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds all possible edges (optional operation).  <a href="#a1e321ab267657ef4222b7b2954492e63"></a><br/></td></tr>
<tr class="memitem:adcf0b5b7a5745610dd50206672aec471 inherit pub_methods_classDiGraph"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDiGraph.html#adcf0b5b7a5745610dd50206672aec471">delAllEdges</a> ()</td></tr>
<tr class="memdesc:adcf0b5b7a5745610dd50206672aec471 inherit pub_methods_classDiGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes all possible edges (optional operation).  <a href="#adcf0b5b7a5745610dd50206672aec471"></a><br/></td></tr>
<tr class="memitem:a37a974d4f6e7804c86feaf75a9837adb inherit pub_methods_classDiGraph"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDiGraph.html#a37a974d4f6e7804c86feaf75a9837adb">hasEdge</a> (long i, long j) const </td></tr>
<tr class="memdesc:a37a974d4f6e7804c86feaf75a9837adb inherit pub_methods_classDiGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queries for an edge.  <a href="#a37a974d4f6e7804c86feaf75a9837adb"></a><br/></td></tr>
<tr class="memitem:a33d282c4d5da07f660628b9672c1f67d inherit pub_methods_classDiGraph"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDiGraph.html#a33d282c4d5da07f660628b9672c1f67d">degree</a> (long i) const </td></tr>
<tr class="memdesc:a33d282c4d5da07f660628b9672c1f67d inherit pub_methods_classDiGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of neighbors of a specified vertex.  <a href="#a33d282c4d5da07f660628b9672c1f67d"></a><br/></td></tr>
<tr class="memitem:aeb13a150a187caa0b77c347fbf14cd67 inherit pub_methods_classDiGraph"><td class="memItemLeft" align="right" valign="top">virtual long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDiGraph.html#aeb13a150a187caa0b77c347fbf14cd67">antiDegree</a> (long i) const </td></tr>
<tr class="memdesc:aeb13a150a187caa0b77c347fbf14cd67 inherit pub_methods_classDiGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of anti-neighbors of a specified vertex.  <a href="#aeb13a150a187caa0b77c347fbf14cd67"></a><br/></td></tr>
<tr class="memitem:a9abb77919af689dc43cb36ee5222786e inherit pub_methods_classDiGraph"><td class="memItemLeft" align="right" valign="top">virtual const D *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDiGraph.html#a9abb77919af689dc43cb36ee5222786e">neig</a> (long i) const =0</td></tr>
<tr class="memdesc:a9abb77919af689dc43cb36ee5222786e inherit pub_methods_classDiGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the neighborhood of a specified vertex as an unmodifiable <a class="el" href="classDirectlyAddressedSet.html" title="A static or dynamic set of elements with direct addressing.">DirectlyAddressedSet</a>.  <a href="#a9abb77919af689dc43cb36ee5222786e"></a><br/></td></tr>
<tr class="memitem:aa78af5801fd24c325ce2d7058a7aca59 inherit pub_methods_classDiGraph"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classDiGraph.html">DiGraph</a>&lt; D &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDiGraph.html#aa78af5801fd24c325ce2d7058a7aca59">clone</a> () const =0</td></tr>
<tr class="memdesc:aa78af5801fd24c325ce2d7058a7aca59 inherit pub_methods_classDiGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a clone of the current graph.  <a href="#aa78af5801fd24c325ce2d7058a7aca59"></a><br/></td></tr>
<tr class="memitem:a63d6b74cf76002cefe0cfe4a342cb5a1 inherit pub_methods_classDiGraph"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classDiGraph.html">DiGraph</a>&lt; D &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDiGraph.html#a63d6b74cf76002cefe0cfe4a342cb5a1">square</a> () const </td></tr>
<tr class="memdesc:a63d6b74cf76002cefe0cfe4a342cb5a1 inherit pub_methods_classDiGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create the square of the current graph.  <a href="#a63d6b74cf76002cefe0cfe4a342cb5a1"></a><br/></td></tr>
<tr class="memitem:ad28a15dffabbbb78b2e95a2276b06c43 inherit pub_methods_classDiGraph"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDiGraph.html#ad28a15dffabbbb78b2e95a2276b06c43">isEmpty</a> ()</td></tr>
<tr class="memdesc:ad28a15dffabbbb78b2e95a2276b06c43 inherit pub_methods_classDiGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine wherever or not the relation over the graph is empty.  <a href="#ad28a15dffabbbb78b2e95a2276b06c43"></a><br/></td></tr>
<tr class="memitem:ac1776e91b61ae0417cec6f44038a3ca6 inherit pub_methods_classDiGraph"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDiGraph.html#ac1776e91b61ae0417cec6f44038a3ca6">show</a> ()</td></tr>
<tr class="inherit_header pro_methods_classDiGraph"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classDiGraph')"><img src="closed.png" alt="-"/>&nbsp;Protected Member Functions inherited from <a class="el" href="classDiGraph.html">DiGraph< D ></a></td></tr>
<tr class="memitem:a45e6e3e72e747434366477b718d7cc19 inherit pro_methods_classDiGraph"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDiGraph.html#a45e6e3e72e747434366477b718d7cc19">DiGraph</a> (long <a class="el" href="classDiGraph.html#a96f68a636f97b7144bd329c76ee51122">n</a>)</td></tr>
<tr class="memdesc:a45e6e3e72e747434366477b718d7cc19 inherit pro_methods_classDiGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">A simple constructor.  <a href="#a45e6e3e72e747434366477b718d7cc19"></a><br/></td></tr>
<tr class="inherit_header pro_attribs_classDiGraph"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classDiGraph')"><img src="closed.png" alt="-"/>&nbsp;Protected Attributes inherited from <a class="el" href="classDiGraph.html">DiGraph< D ></a></td></tr>
<tr class="memitem:a96f68a636f97b7144bd329c76ee51122 inherit pro_attribs_classDiGraph"><td class="memItemLeft" align="right" valign="top">const long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDiGraph.html#a96f68a636f97b7144bd329c76ee51122">n</a></td></tr>
<tr class="memdesc:a96f68a636f97b7144bd329c76ee51122 inherit pro_attribs_classDiGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of vertices in the graph  <a href="#a96f68a636f97b7144bd329c76ee51122"></a><br/></td></tr>
<tr class="memitem:ac325300072ce8b36dcfd5c7216cf735a inherit pro_attribs_classDiGraph"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDiGraph.html#ac325300072ce8b36dcfd5c7216cf735a">m</a></td></tr>
<tr class="memdesc:ac325300072ce8b36dcfd5c7216cf735a inherit pro_attribs_classDiGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of edges  <a href="#ac325300072ce8b36dcfd5c7216cf735a"></a><br/></td></tr>
</table>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a42783725efe6469a559aaf293927fd03"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class D&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classGraph.html">Graph</a>&lt; D &gt;::<a class="el" href="classGraph.html">Graph</a> </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>n</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a40d32250cafa5d5e17b9fa6c8e802272"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class D&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classGraph.html">Graph</a>&lt; D &gt;::~<a class="el" href="classGraph.html">Graph</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a60727c0e122156a7f70019795a6aade3"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class D &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classGraph.html">Graph</a>&lt; D &gt;::addEdge </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Adds an edge between the two specified vertices (optional operation). </p>
<p>Adds one specified vertex to the neighborhood of the other. A further call to hasEdge(firstVertex, secondVertex) or hasEdge(secondVertex, firstVertex)returns <code>true</code> unless <a class="el" href="classGraph.html#aec1d47825b39b88d7368330cd1e12497" title="Deletes the edge defined by the two specified vertices (optional operation).">delEdge()</a> or <a class="el" href="classDiGraph.html#adcf0b5b7a5745610dd50206672aec471" title="Removes all possible edges (optional operation).">delAllEdges()</a> is invoked to delete the edge defined by the specified vertices.</p>
<p>If one of the specified elements is out of the universe an error will occur.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>the first vertex </td></tr>
    <tr><td class="paramname">j</td><td>the second vertex </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented from <a class="el" href="classDiGraph.html#afd990277eb8013d42c7cc93186c63682">DiGraph&lt; D &gt;</a>.</p>

<p>Reimplemented in <a class="el" href="classBitMapsGraph.html#a758804ca09b01ed02162a37d2eb93569">BitMapsGraph&lt; T &gt;</a>, and <a class="el" href="classBitMapGraph.html#a7172dd247d28ec94509bee45d2d4b1d7">BitMapGraph&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="ad8f1be542121d900ce4a6714fc4790c7"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class D &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classGraph.html">Graph</a>&lt; D &gt;::commonAdj </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Calculates the common neighborhood of specified vertices (optional operation) </p>
<p>Retains in the neigbourhood of the first element the neighbors of the second vertex only. It is implemented using the method <a class="el" href="classDirectlyAddressedSet.html#a722dd648d9caa8449f26741f53b85ba2" title="Intersection of the current set and a specified set (optional operation)">DirectlyAddressedSet::retainAll()</a>.</p>
<p>If one of the elements is out of the universe, an error will occur.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>the first specified element. </td></tr>
    <tr><td class="paramname">j</td><td>the second specified element.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>the resulting <code>i's</code> neighborhood</dd></dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classDirectlyAddressedSet.html#a722dd648d9caa8449f26741f53b85ba2" title="Intersection of the current set and a specified set (optional operation)">DirectlyAddressedSet::retainAll()</a> </dd></dl>

<p>Reimplemented from <a class="el" href="classDiGraph.html#ac37f568249179469d947c7b327d6555c">DiGraph&lt; D &gt;</a>.</p>

<p>Reimplemented in <a class="el" href="classBitMapsGraph.html#a210358944c413934020687c4c20b8a80">BitMapsGraph&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a6e6876cdbda5025eb6e0ded963f4ab15"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class D&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classDiGraph.html">DiGraph</a>* <a class="el" href="classGraph.html">Graph</a>&lt; D &gt;::complement </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The complement of the current graph. </p>
<p>The complement of a graph is another graph that has the same set of vertexes but the set of edges is different. If uv is an edge in the graph if is not in the complement, if is not an edge in the graph is in the complement, except for the edges in the form vv.</p>
<dl class="section return"><dt>Returns:</dt><dd>the complement of the current graph. </dd></dl>

</div>
</div>
<a class="anchor" id="aec1d47825b39b88d7368330cd1e12497"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class D &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classGraph.html">Graph</a>&lt; D &gt;::delEdge </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Deletes the edge defined by the two specified vertices (optional operation). </p>
<p>Deletes one specified vertex from the neighborhood of the other. A further call to hasEdge(firstVertex, secondVertex) or hasEdge(secondVertex, firstVertex) returns <code>false</code> unless <a class="el" href="classGraph.html#a60727c0e122156a7f70019795a6aade3" title="Adds an edge between the two specified vertices (optional operation).">addEdge()</a> or <a class="el" href="classDiGraph.html#a1e321ab267657ef4222b7b2954492e63" title="Adds all possible edges (optional operation).">addAllEdges()</a> is invoked to add the edge defined by the specified vertices.</p>
<p>If one of the specified elements is out of the universe an error will occur.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>the first vertex </td></tr>
    <tr><td class="paramname">j</td><td>the second vertex </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented from <a class="el" href="classDiGraph.html#a67b47751cfa02ac2905013e50836f822">DiGraph&lt; D &gt;</a>.</p>

<p>Reimplemented in <a class="el" href="classBitMapsGraph.html#ae07bf761cd2bbe81f6625ac28ae243f9">BitMapsGraph&lt; T &gt;</a>, and <a class="el" href="classBitMapGraph.html#acb69e0ac1a827ab13da5e4b18653f5bd">BitMapGraph&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a44bb6e4984060e2ec712521973916bfa"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class D &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classGraph.html">Graph</a>&lt; D &gt;::diffAdj </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Removes from the neighborhood of one specified vertex the neighbors of a second specified vertex (optional operation) </p>
<p>Removes all the neighbors of the second specified element to the neighborhood of the first specified vertex. It is implemented using the method <a class="el" href="classDirectlyAddressedSet.html#af45e06fe443a71cb91635ddd397ec35f" title="Difference of the current set and a specified set (optional operation)">DirectlyAddressedSet::removeAll()</a>. The result overwrite the neighborhood of the first element.</p>
<p>If one of the elements is out of the universe, an error will occur.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>the first specified element. </td></tr>
    <tr><td class="paramname">j</td><td>the second specified element.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>the resulting <code>i's</code> neighborhood</dd></dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classDirectlyAddressedSet.html#af45e06fe443a71cb91635ddd397ec35f" title="Difference of the current set and a specified set (optional operation)">DirectlyAddressedSet::removeAll()</a> </dd></dl>

<p>Reimplemented from <a class="el" href="classDiGraph.html#ac0abfb4934659476b4273380d3bb2b8a">DiGraph&lt; D &gt;</a>.</p>

<p>Reimplemented in <a class="el" href="classBitMapsGraph.html#ae762e6472ff1d7025858acfda770407e">BitMapsGraph&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="a33bc7b325cc386e33577873f22cae843"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class D &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classGraph.html">Graph</a>&lt; D &gt;::flipEdge </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Swap the edge represented by the specified ordered pair (optional operation). </p>
<p>If the edge represented by the specified ordered pair is in the graph, it will be removed if not it will be added.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>first vertex </td></tr>
    <tr><td class="paramname">j</td><td>second vertex </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented from <a class="el" href="classDiGraph.html#a51ca0bc1dec757e005c28c3dcd1ab5c6">DiGraph&lt; D &gt;</a>.</p>

<p>Reimplemented in <a class="el" href="classBitMapsGraph.html#ae3e177fc813c7dd386bf6ff6ebcc6434">BitMapsGraph&lt; T &gt;</a>, and <a class="el" href="classBitMapGraph.html#a94d0f8b55c78a2d68cafef5afde9e5b0">BitMapGraph&lt; T &gt;</a>.</p>

</div>
</div>
<a class="anchor" id="aa8af5d1b51a06458e6b369b2d017fb9a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class D&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classDiGraph.html">DiGraph</a>* <a class="el" href="classGraph.html">Graph</a>&lt; D &gt;::homomorphism </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>rsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>R</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Creates a homomorphism of the current graph. </p>
<p>A homomorphism of a graph is a labeling function <em>l</em> of its vertex such that if ij is a edge than l(i)l(j) is an edge and is ij is not an edge than ij is not an edge.</p>
<p>The array passed as parameter is the labeling function, the position i represents the new label of the vertex i. the long is the size of the array.</p>
<p>Notice that is not necessary that the array has a position to every vertex, and you can associate more than one vertex to a same label. But it can cause bad behaive of the functions.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">rsize</td><td>the size of the array <code>R</code>, in bytes </td></tr>
    <tr><td class="paramname">R</td><td>the labeling function, each position represents the new label of the vertex in that position.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>A homomorphism of the current graph represented by <code>R</code> as the labeling function. </dd></dl>

</div>
</div>
<a class="anchor" id="aa48d8578b691867f2f9ea9a06f0379d4"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class D &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classGraph.html">Graph</a>&lt; D &gt;::joinAdj </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>j</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Joins the neighborhood of two specified vertices (optional operation). </p>
<p>Adds all the neighbors of the second specified element to the neighborhood of the first specified vertex. It is implemented using the method <a class="el" href="classDirectlyAddressedSet.html#ace4dc1b4e41e18d0c7cef3fa17c64dc5" title="Union of the current set and a specified set (optional operation).">DirectlyAddressedSet::addAll()</a>. The result overwrite the neigbourhood of the first element.</p>
<p>If one of the elements is out of the universe, an error will occur.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">i</td><td>the first specified element. </td></tr>
    <tr><td class="paramname">j</td><td>the second specified element.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>the resulting <code>i's</code> neighborhood</dd></dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="classDirectlyAddressedSet.html#ace4dc1b4e41e18d0c7cef3fa17c64dc5" title="Union of the current set and a specified set (optional operation).">DirectlyAddressedSet::addAll()</a> </dd></dl>

<p>Reimplemented from <a class="el" href="classDiGraph.html#ae50a20c8620a1e878470d40a102d622b">DiGraph&lt; D &gt;</a>.</p>

<p>Reimplemented in <a class="el" href="classBitMapsGraph.html#a5dfaef1d7733c6a6dc5dd323aad9ddb8">BitMapsGraph&lt; T &gt;</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>graphs/<a class="el" href="Graph_8h_source.html">Graph.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Nov 26 2012 17:06:46 for Data Structures for Sets and Graphs by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.1.1
</small></address>
</body>
</html>
